NOTE: PROCEDURE PRINTTO used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

3    
4    DM "log; clear; ";
5    DM 'odsresults; clear';
6    
7    %global projectrootdirectory;
8    %let projectrootdirectory=C:/Users/hpham13/Projects/mf_activism/empirical;
9    
10   *Creates your local Libraries;
11   libname rawdata "&projectrootdirectory./0_input/original";
NOTE: Libref RAWDATA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\0_input\original
12   libname rawdata2 "&projectrootdirectory./0_input/original/finaldatadepvars";
NOTE: Libref RAWDATA2 was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: 
      C:\Users\hpham13\Projects\mf_activism\empirical\0_input\original\finaldatadepvars
13   libname save "&projectrootdirectory./0_input/final";
NOTE: Libref SAVE was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\0_input\final
14   
15   %let datadirectory= C:/Users/hpham13/data ;
16   
17   libname lnk "&datadirectory./Linking_tables/";
NOTE: Libref LNK was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\Linking_tables
18   libname ceo "&datadirectory./ceo/";
NOTE: Libref CEO was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\ceo
19   libname activism "&datadirectory./activism/" ;
NOTE: Libref ACTIVISM was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\activism
20   libname comp "&datadirectory./compustat/fundq/";
NOTE: Libref COMP was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\compustat\fundq
21   libname compa "&datadirectory./compustat/funda/";
NOTE: Libref COMPA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\compustat\funda
22   libname ibes "&datadirectory./IBES";
NOTE: Libref IBES was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\IBES
23   
24   * include some macros;
25   %include "&datadirectory./utils/do_over.sas";
332  %include "&datadirectory./utils/ff48.sas";
404  %include "&datadirectory./utils/ff49.sas";
477  %include "&datadirectory./utils/ff12.sas";
516  %include "&datadirectory./utils/winsorize.sas";
604   %include "&datadirectory./utils/lags.sas";
783   
784   
785   
786   /* ************************************************************************ */
787   /* ***********************  PART 1: IMPORT DATA  ************************** */
788   /* ************************************************************************ */
789   
790   %let fname = 062325_posCAR ;
791   * cutoff 1%;
792   data stockpick; set rawdata2.stkpick&fname.;
793       label relstkpick1="RelInformedTrade cutoff 1%" ;
794   run;

NOTE: There were 122742 observations read from the data set RAWDATA2.STKPICK062325_POSCAR.
NOTE: The data set WORK.STOCKPICK has 122742 observations and 26 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.00 seconds
      

795   proc sort nodupkey; by gvkey rdq; run;

NOTE: There were 122742 observations read from the data set WORK.STOCKPICK.
NOTE: 973 observations with duplicate key values were deleted.
NOTE: The data set WORK.STOCKPICK has 121769 observations and 26 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds
      

796   
797   /* 2. merge stacked data and others */
798   data stacked_data; set rawdata.stacked_data_111624; run;

NOTE: There were 50730 observations read from the data set RAWDATA.STACKED_DATA_111624.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 52 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

799   
800   * make the cohort year ;
801   data stacked_data; set stacked_data;
802       if qd_rel = 0 then _cohort_y = fyearq; else _cohort_y = 0;
803   run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

804   proc sql;
805       create table stacked_data as
806       select *, max(_cohort_y) as cohort_y label='Cohort Year'
807       from stacked_data
808       group by cid ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.STACKED_DATA created, with 50730 rows and 54 columns.

809   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds
      

810   data stacked_data; set stacked_data;
811       drop _cohort_y ;
812   run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

813   proc sort data=stacked_data; by cid pairid treated qd_rel; run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds
      

814   
815   * activism data;
816   data pilot; set activism.ca_details_95_pilot; run;

NOTE: There were 9262 observations read from the data set ACTIVISM.CA_DETAILS_95_PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.06 seconds
      

817   proc sort data=pilot nodupkey; by  gvkey CAMPAIGN_ID ; run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.11 seconds
      cpu time            0.11 seconds
      

818   
819   *check if two campaigns happens during the period of 8 quarters ;
820   proc sort data=pilot;
821       by gvkey ANNOUNCE_DATE;
822   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.11 seconds
      

823   data pilot; set pilot;
824       by gvkey ;
825       ANNOUNCE_DATE_l = lag(ANNOUNCE_DATE);
826       if first.gvkey then ANNOUNCE_DATE_l=.;
827       format ANNOUNCE_DATE_l YYMMDD10. ;
828       * count the number of quarters;
829       days_diff = intck('day', ANNOUNCE_DATE_l, ANNOUNCE_DATE);
830       if ANNOUNCE_DATE_l = . then days_diff = . ;
831       if days_diff ne . then quarter_diff = days_diff/30 ;
832           else quarter_diff = . ;
833       format quarter_diff comma8.1;
834   run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4328 at 829:17   
NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 150 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
      

835   
836   proc sort data=pilot out=pilot;
837       by gvkey descending ANNOUNCE_DATE;
838   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 150 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.09 seconds
      

839   
840   data pilot;
841       set pilot;
842       by gvkey;
843       retain ANNOUNCE_DATE_f;
844       if first.gvkey then ANNOUNCE_DATE_f = .;
845       ANNOUNCE_DATE_f = lag(ANNOUNCE_DATE);
846       if first.gvkey then ANNOUNCE_DATE_f = .;
847       output;
848   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 151 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
      

849   
850   data pilot;
851       set pilot;
852       format ANNOUNCE_DATE_f YYMMDD10. ;
853       * count the number of quarters;
854       days_diff_2 = intck('day', ANNOUNCE_DATE, ANNOUNCE_DATE_f);
855       if ANNOUNCE_DATE = . then days_diff_2 = . ;
856       if days_diff_2 ne . then quarter_diff_2 = days_diff_2/30 ;
857           else quarter_diff_2 = . ;
858       format quarter_diff_2 comma8.1;
859   run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4328 at 854:19   
NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 153 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.07 seconds
      

860   
861   proc sort data=pilot out=pilot;
862       by gvkey ANNOUNCE_DATE;
863   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 153 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.11 seconds
      

864   
865   * other activism vars;
866   data sharkwatch;
867       set activism.tohai_activists_12032023;
868   run;

NOTE: There were 3023 observations read from the data set ACTIVISM.TOHAI_ACTIVISTS_12032023.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

869   proc sort data=sharkwatch nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 3023 observations read from the data set WORK.SHARKWATCH.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

870   
871   data sharkwatch;
872       set sharkwatch;
873       drop fyear sic2;
874   run;

WARNING: The variable fyear in the DROP, KEEP, or RENAME list has never been referenced.
WARNING: The variable sic2 in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: There were 3023 observations read from the data set WORK.SHARKWATCH.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

875   proc sort data=sharkwatch nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 3023 observations read from the data set WORK.SHARKWATCH.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

876   
877   * Activist prior experience;
878   data activist_prior_exp;
879       set rawdata.activist_prior_exp;
880   run;

NOTE: There were 2110 observations read from the data set RAWDATA.ACTIVIST_PRIOR_EXP.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 2110 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

881   
882   %let qd = (year(ANNOUNCE_DATE)*4  + qtr(ANNOUNCE_DATE) - 1925*4);
883   data activist_prior_exp; set activist_prior_exp ;
884       if ANNOUNCE_DATE ne . then do ;
885           qd = &qd;
886       end;
887   run;

NOTE: There were 2110 observations read from the data set WORK.ACTIVIST_PRIOR_EXP.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 2110 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

888   proc sort data=activist_prior_exp nodupkey; by gvkey year qd; run;

NOTE: There were 2110 observations read from the data set WORK.ACTIVIST_PRIOR_EXP.
NOTE: 227 observations with duplicate key values were deleted.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 1883 observations and 21 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

889   
890   /* Merge data */
891   proc sql;
892       create table stacked_data2 as
893       select  a.*, b.*, c.*, d.prior_exp,
894               d.mean_prior_exp_sic2, d.med_prior_exp_sic2,
895               d.med_NUMBER_CAMPAIGNS, d.mean_NUMBER_CAMPAIGNS,
896               d.med_ACTIVIST_THREAT_RATING, d.mean_ACTIVIST_THREAT_RATING
897       from    stacked_data as a left join pilot as b
898       on      a.gvkey=b.gvkey and
899               a.FACTSET_ENTITY_ID=b.FACTSET_ENTITY_ID and
900               a.CAMPAIGN_ID=b.CAMPAIGN_ID
901       left join sharkwatch as c
902       on      a.CAMPAIGN_ID=c.CAMPAIGN_ID
903       left join activist_prior_exp as d
904       on      a.gvkey=d.gvkey and a.qd=d.qd ;
WARNING: Variable CAMPAIGN_ID already exists on file WORK.STACKED_DATA2.
WARNING: Variable ANNOUNCE_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable FILING_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable END_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable FACTSET_ENTITY_ID already exists on file WORK.STACKED_DATA2.
WARNING: Variable ENTITY_PROPER_NAME already exists on file WORK.STACKED_DATA2.
WARNING: Variable gvkey already exists on file WORK.STACKED_DATA2.
WARNING: Variable CAMPAIGN_ID already exists on file WORK.STACKED_DATA2.
NOTE: Table WORK.STACKED_DATA2 created, with 50730 rows and 210 columns.

905   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.43 seconds
      cpu time            1.92 seconds
      

906   proc sort data=stacked_data2 nodupkey; by cID PairID treated qd_rel ; run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.STACKED_DATA2 has 50730 observations and 210 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.58 seconds
      cpu time            0.57 seconds
      

907   
908   * create the SIC2 ;
909   data stacked_data2;
910       set stacked_data2;
911       sic_num = input(sic, 8.);
912       sic2 = floor(sic/100);
913   run;

NOTE: Character values have been converted to numeric values at the places given by: 
      (Line):(Column).
      912:18   
NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA2.
NOTE: The data set WORK.STACKED_DATA2 has 50730 observations and 212 variables.
NOTE: DATA statement used (Total process time):
      real time           0.40 seconds
      cpu time            0.39 seconds
      

914   
915   * count the number of campaigns per sic2-year ;
916   proc sql;
917       create table stacked_data2 as
918       select
919           a.*, b.number_campaigns_ind, b.avg_campaigns_ind, b.med_campaigns_ind,
919 ! b.sd_campaigns_ind,
920           b.med_activist_threat_rating, b.sum_activist_threat_rating,
920 ! b.avg_activist_threat_rating
921       from stacked_data2 as a
922       left join (
923       select distinct CAMPAIGN_ID, sic2, year
924           , sum( number_campaigns) as number_campaigns_ind label="N campaigns (industry)"
925           , mean( number_campaigns) as avg_campaigns_ind format comma8.3
926           , median( number_campaigns) as med_campaigns_ind format comma8.2
927           , std( number_campaigns) as sd_campaigns_ind format comma8.2
928           , median(activist_threat_rating) as med_activist_threat_rating format comma8.2
929           , avg(activist_threat_rating) as avg_activist_threat_rating format comma8.2
930           , sum(activist_threat_rating) as sum_activist_threat_rating format comma8.2
931           from stacked_data2
932           group by sic2, year
933           having number_campaigns ne . and activist_threat_rating ne .
934           ) as b
935       on  a.CAMPAIGN_ID=b.CAMPAIGN_ID and
936           a.sic2=b.sic2 and
937           a.year=b.year  ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable med_activist_threat_rating already exists on file WORK.STACKED_DATA2.
NOTE: Table WORK.STACKED_DATA2 created, with 50730 rows and 218 columns.

938   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.28 seconds
      cpu time            1.42 seconds
      

939   
940   
941   
942   /* ************************************************************************ */
943   /* ********************  PART 2: MERGE FUNDQ, FUNDA  ********************** */
944   /* ************************************************************************ */
945   * Merge stacked data and MFF stock picking ability;
946   proc sql;
947       create table Analysis as
948       select  a.*, b.*
949       from    stacked_data2 as a left join stockpick as b
950       on      a.gvkey=b.gvkey and a.rdq=b.rdq ;
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable datadate already exists on file WORK.ANALYSIS.
WARNING: Variable rdq already exists on file WORK.ANALYSIS.
WARNING: Variable qd already exists on file WORK.ANALYSIS.
WARNING: Variable year already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 50730 rows and 239 columns.

951   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.95 seconds
      cpu time            1.15 seconds
      

952   proc sort data=Analysis nodupkey; by cID PairID treated gvkey datadate; run;

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 50730 observations and 239 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.62 seconds
      cpu time            0.60 seconds
      

953   
954   * handle outliers;
955   data Analysis; set Analysis; fyear=year(datadate); run;

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 50730 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.38 seconds
      cpu time            0.37 seconds
      

956   %winsor(dsetin=work.Analysis, dsetout=work.Analysis, byvar=none, vars=relstkpick1,
956 ! type=trim, pctl=1 99);

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.XTEMP has 50730 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.37 seconds
      cpu time            0.34 seconds
      


NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 50730 observations and 241 variables.
NOTE: DATA statement used (Total process time):
      real time           0.39 seconds
      cpu time            0.39 seconds
      


NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 50730 observations and 241 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.58 seconds
      cpu time            0.57 seconds
      

NOTE: Writing HTML Body file: sashtml.htm

NOTE: The data set WORK.XTEMP_PCTL has 1 observations and 3 variables.
NOTE: PROCEDURE UNIVARIATE used (Total process time):
      real time           0.45 seconds
      cpu time            0.31 seconds
      


NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: There were 1 observations read from the data set WORK.XTEMP_PCTL.
NOTE: The data set WORK.ANALYSIS has 50390 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.43 seconds
      cpu time            0.43 seconds
      

957   data Analysis; set Analysis; drop fyear ; run;

NOTE: There were 50390 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 50390 observations and 239 variables.
NOTE: DATA statement used (Total process time):
      real time           0.41 seconds
      cpu time            0.42 seconds
      

958   proc sql;
958 !           drop table xtemp, xtemp_pctl;
NOTE: Table WORK.XTEMP has been dropped.
NOTE: Table WORK.XTEMP_PCTL has been dropped.
958 !                                         quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.04 seconds
      cpu time            0.04 seconds
      

959   
960   data fundq_clean;
961       set rawdata.comp_fundq_clean;
962       keep gvkey rdq datadate fyearq fyr fqtr be /*me*/ bd ppegtq PnI saleq to dlttq dlcq
963       oibdpq oiadpq pm ic tacq revq drevq drevadjq ppeq roaq roaq_lag1 me ml bm
964       atq_lag1 saleq_lag1 rectq_lag1 ibq ibq_lag1 size size_l lvrg_l lvrg seqq ltq niq niq_l
964 ! ;
965       if atq > 0 and atq_lag1 > 0 ;
966       size   = log(atq);
967       size_l = log(atq_lag1);
968       lvrg_l = bd/atq_lag1;
969       lvrg   = dlttq/atq;
970       if lvrg eq . then lvrg = 0 ;
971   run;

WARNING: The variable niq_l in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      227702 at 968:16   8651 at 969:19     
NOTE: There were 1125340 observations read from the data set RAWDATA.COMP_FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.28 seconds
      cpu time            0.28 seconds
      

972   proc sort data=fundq_clean nodupkey; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.27 seconds
      cpu time            0.43 seconds
      

973   %let winsVars2 = saleq revq ;
974   %winsor(dsetin=work.fundq_clean, dsetout=work.fundq_clean, byvar=fyearq, vars=&winsVars2,
974 ! type=winsor, pctl=1 99);

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.XTEMP has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.16 seconds
      cpu time            0.15 seconds
      


NOTE: There were 1012247 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.27 seconds
      cpu time            0.53 seconds
      


NOTE: The data set WORK.XTEMP_PCTL has 30 observations and 5 variables.
NOTE: PROCEDURE UNIVARIATE used (Total process time):
      real time           0.74 seconds
      cpu time            0.73 seconds
      


WARNING: The variable xbyvar in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: There were 1012247 observations read from the data set WORK.XTEMP.
NOTE: There were 30 observations read from the data set WORK.XTEMP_PCTL.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.23 seconds
      cpu time            0.21 seconds
      

975   
976   * get more fundq vars;
977   data fundq_add; set comp.fundq_1950_2021;
978       keep gvkey datadate intanq;
979       where datadate>'01JAN1990'd;
980   run;

NOTE: There were 1441077 observations read from the data set COMP.FUNDQ_1950_2021.
      WHERE datadate>'01JAN1990'D;
NOTE: The data set WORK.FUNDQ_ADD has 1441077 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.29 seconds
      cpu time            0.29 seconds
      

981   
982   proc sort data=fundq_add nodupkey; by gvkey datadate; run;

NOTE: There were 1441077 observations read from the data set WORK.FUNDQ_ADD.
NOTE: 1238 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_ADD has 1439839 observations and 3 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.07 seconds
      cpu time            0.20 seconds
      

983   proc sort data=fundq_clean nodupkey; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.26 seconds
      cpu time            0.46 seconds
      

984   data fundq_clean;
985       merge fundq_clean(in=a) fundq_add (in=b);
986       by gvkey datadate;
987       if a;
988   run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: There were 1439839 observations read from the data set WORK.FUNDQ_ADD.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 41 variables.
NOTE: DATA statement used (Total process time):
      real time           0.28 seconds
      cpu time            0.28 seconds
      

989   
990   * Create calendar date of fiscal period end in Compustat extract;
991   data fundq_clean; set fundq_clean;
992      if (1<=fyr<=5) then date_fyend=intnx('month',mdy(fyr,1,fyearq+1),0,'end');
993      else if (6<=fyr<=12) then date_fyend=intnx('month',mdy(fyr,1,fyearq),0,'end');
994      fqenddt=intnx('month',date_fyend,-3*(4-fqtr),'end');
995      format fqenddt date9.;
996      drop date_fyend;
997   run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 42 variables.
NOTE: DATA statement used (Total process time):
      real time           0.47 seconds
      cpu time            0.43 seconds
      

998   
999   * calculate moving sum of quarterly loss;
1000  data fundq_clean; set fundq_clean;
1001      if niq <=0 then lossq = 1 ; else lossq = 0;
1002  run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 43 variables.
NOTE: DATA statement used (Total process time):
      real time           0.23 seconds
      cpu time            0.18 seconds
      

1003  
1004  proc sort data=fundq_clean; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 43 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.28 seconds
      cpu time            0.46 seconds
      

1005  proc expand data=fundq_clean out=fundq_clean;
1006      by gvkey ;
1007      id datadate;
1008      convert lossq = sum_lossq12 / transformout=(movsum 16);
1009      convert niq = ma_niq12 / transformout=(movave 16);
1010      convert ibq = sd_niq12 / transformout=(movstd 16);
1011      convert roaq = sd_roaq12 / transformout=(movstd 16);
1012  run;

WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=009879
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=010673
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013260
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013530
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013938
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=060976
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 47 variables.
NOTE: PROCEDURE EXPAND used (Total process time):
      real time           1.47 seconds
      cpu time            1.46 seconds
      

1013  
1014  data fundq_clean; set fundq_clean;
1015      drop datadate;
1016  run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 46 variables.
NOTE: DATA statement used (Total process time):
      real time           0.20 seconds
      cpu time            0.20 seconds
      

1017  
1018  * add funda vars ;
1019  data funda_clean;
1020      set rawdata.comp_funda_clean2020;
1021      if at>0 & at_l>0;
1022      asize   = log(at);
1023      asize_l = log(at_l);
1024      bm_ann = bm;
1025      roa2 = ib_l/at_l;
1026      if ni < 0 then loss_a = 1; else loss_a = 0;
1027      where datadate ne . and at>0;
1028      label asize = "Log(AT)"
1029      asize_l = "Log(AT_l)" ;
1030  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      272 at 1025:16   
NOTE: There were 182044 observations read from the data set RAWDATA.COMP_FUNDA_CLEAN2020.
      WHERE (datadate not = .) and (at>0);
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 118 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.09 seconds
      

1031  proc sort data=funda_clean nodupkey ; by gvkey fyear; run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 118 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.14 seconds
      cpu time            0.20 seconds
      

1032  
1033  proc expand data=funda_clean out=funda_clean;
1034      by gvkey;
1035      id fyear;
1036      convert loss_a = sum_loss_a5 / transformout=(movsum 10);
1037      convert roa2 = ma_roa5 / transformout=(movstd 10);
1038      convert ib = ma_ni5 / transformout=(movstd 10);
1039  run;

WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=009879
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=012161
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013260
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013530
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=028379
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=030719
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=031810
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=065561
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=065844
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=066707
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=110320
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=129631
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=144564
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 121 variables.
NOTE: PROCEDURE EXPAND used (Total process time):
      real time           0.57 seconds
      cpu time            0.54 seconds
      

1040  
1041  * add additional funda vars;
1042  data funda_add; set compa.funda_1950_2021;
1043      keep gvkey datadate intan ;
1044  run;

NOTE: There were 861623 observations read from the data set COMPA.FUNDA_1950_2021.
NOTE: The data set WORK.FUNDA_ADD has 861623 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.14 seconds
      cpu time            0.14 seconds
      

1045  proc sort data=funda_add nodupkey; by gvkey datadate; run;

NOTE: There were 861623 observations read from the data set WORK.FUNDA_ADD.
NOTE: 307572 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDA_ADD has 554051 observations and 3 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.14 seconds
      

1046  
1047  data funda_clean;
1048      merge funda_clean(in=a) funda_add(in=b);
1049      by gvkey datadate;
1050      if a;
1051  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: There were 554051 observations read from the data set WORK.FUNDA_ADD.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 122 variables.
NOTE: DATA statement used (Total process time):
      real time           0.14 seconds
      cpu time            0.14 seconds
      

1052  
1053  * Calculate firm age ;
1054  data funda_clean ;
1055      set funda_clean;
1056      by gvkey;
1057      if first.gvkey then
1058          firm_age=0;
1059      firm_age + 1;
1060  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 123 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.10 seconds
      

1061  proc sort data=funda_clean; by gvkey fyear;  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 123 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.15 seconds
      cpu time            0.18 seconds
      

1062  
1063  * Calculate the mean, median, and standard deviation by industry ;
1064  proc sql;
1065      create table funda_clean as
1066      select *,
1067          mean(firm_age) as ind_mean_firm_age label="Industry mean firm age",
1068          median(firm_age) as ind_med_firm_age label="Industry median firm age",
1069          std(firm_age) as ind_std_firm_age label="Industry Std firm age"
1070      from funda_clean
1071      group by sic2, fyear
1072      order by gvkey, fyear;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.FUNDA_CLEAN created, with 181286 rows and 126 columns.

1073  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.36 seconds
      cpu time            0.51 seconds
      

1074  
1075  * Merge stacked data and firm characteristics;
1076  data StateName;
1077      set rawdata.firmStateName;
1078  run;

NOTE: There were 41696 observations read from the data set RAWDATA.FIRMSTATENAME.
NOTE: The data set WORK.STATENAME has 41696 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

1079  
1080  proc sql;
1081      create table Analysis as
1082      select  a.*,b.*,
1083              c.StateName label="Firm HQ State", c.ST label="State",
1084              d.at, d.at_l, d.sale, d.sale_l, d.ni, d.ib, d.ibc,
1085              d.firm_age, d.ind_mean_firm_age, d.ind_std_firm_age, d.ind_med_firm_age,
1086              d.revt, d.revt_l, d.ceq, d.datadate as datadate_ann, d.xrd, d.intan,
1087              d.ma_roa5, d.ma_ni5, d.sum_loss_a5
1088      from    Analysis as a
1089      left join fundq_clean as b
1090          on  a.gvkey=b.gvkey and a.rdq=b.rdq
1091      left join StateName as c
1092          on  a.gvkey=c.gvkey
1093      left join funda_clean as d
1094          on  a.gvkey=d.gvkey and a.fyearq=d.fyear ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable fyearq already exists on file WORK.ANALYSIS.
WARNING: Variable fqtr already exists on file WORK.ANALYSIS.
WARNING: Variable fyr already exists on file WORK.ANALYSIS.
WARNING: Variable rdq already exists on file WORK.ANALYSIS.
WARNING: Variable dlcq already exists on file WORK.ANALYSIS.
WARNING: Variable dlttq already exists on file WORK.ANALYSIS.
WARNING: Variable ibq already exists on file WORK.ANALYSIS.
WARNING: Variable ltq already exists on file WORK.ANALYSIS.
WARNING: Variable niq already exists on file WORK.ANALYSIS.
WARNING: Variable oiadpq already exists on file WORK.ANALYSIS.
WARNING: Variable oibdpq already exists on file WORK.ANALYSIS.
WARNING: Variable ppegtq already exists on file WORK.ANALYSIS.
WARNING: Variable saleq already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 51190 rows and 293 columns.

1095  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           2.23 seconds
      cpu time            2.79 seconds
      

1096  
1097  proc sql;
1098      create table Analysis as
1099      select *,
1100          max(firm_age) as firm_age2
1101      from Analysis
1102      group by cid, gvkey, year(datadate)
1103      order by cid, pairid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 51190 rows and 294 columns.

1104  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.43 seconds
      cpu time            1.84 seconds
      

1105  
1106  proc sql;
1107      create table Analysis as
1108      select *,
1109          mean(firm_age) as ind_mean_firm_age2 label="Industry mean firm age",
1110          median(firm_age) as ind_med_firm_age2 label="Industry median firm age",
1111          std(firm_age) as ind_std_firm_age2 label="Industry Std firm age"
1112      from Analysis
1113      group by cid, sic2
1114      order by cid, pairid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 51190 rows and 297 columns.

1115  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.36 seconds
      cpu time            1.57 seconds
      

1116  
1117  * calendar quarter ;
1118  data Analysis; set Analysis;
1119      calyear = year(datadate_ann);
1120      if calyear = . then calyear = year(fqenddt);
1121      calqtr = qtr(datadate);
1122  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      3556 at 1119:15   127 at 1120:35    
NOTE: There were 51190 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 51190 observations and 299 variables.
NOTE: DATA statement used (Total process time):
      real time           0.42 seconds
      cpu time            0.42 seconds
      

1123  
1124  * compute the average inst ownership over the fiscal year;
1125  proc sql;
1126      create table Analysis as
1127      select *, avg(ior) as avg_ior label="Average Qtr IOR" format comma8.4
1128      from Analysis
1129      group by gvkey, fyearq
1130      order by cid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 51190 rows and 300 columns.

1131  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.41 seconds
      cpu time            1.75 seconds
      

1132  data Analysis;
1133      retain gvkey fyearq fqtr rdq datadate ANNOUNCE_DATE treated post qd_rel cid pairid qd;
1134      set Analysis;
1135      if cmiss (of relstkpick1 ) eq 0;
1136  run;

NOTE: There were 51190 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16817 observations and 300 variables.
NOTE: DATA statement used (Total process time):
      real time           0.30 seconds
      cpu time            0.31 seconds
      

1137  
1138  
1139  
1140  /* ************************************************************************ */
1141  * make some vars to check the number of non-missing Relstkpick ;
1142  /* ************************************************************************ */
1143  * COUNTER is a cummulative number: 0,1,2,3,4,5 ;
1144  proc sort data=Analysis; by cid gvkey post; run;

NOTE: There were 16817 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16817 observations and 300 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.21 seconds
      cpu time            0.21 seconds
      

1145  data Analysis;
1146      set Analysis;
1147      by cID gvkey post;
1148      if first.post then COUNTER=0;
1149      COUNTER+(Relstkpick1 ne .);
1150  run;

NOTE: There were 16817 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16817 observations and 301 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.14 seconds
      

1151  
1152  proc sql;
1153      create table Analysis as
1154      select *,
1155          max(COUNTER) as COUNTER_BY_POST
1156      from Analysis
1157      group by cID, gvkey, post
1158      order by cid, gvkey, qd_rel ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16817 rows and 302 columns.

1159  
1160      create table Analysis as
1161      select *,
1162          min(post) as MIN_POST,
1163          max(post) as MAX_POST,
1164          min(COUNTER_BY_POST) as MIN_NOBS_PRE_POST
1165      from Analysis
1166      group by cID, gvkey
1167      order by cid, gvkey, qd_rel ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16817 rows and 305 columns.

1168  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.77 seconds
      cpu time            0.93 seconds
      

1169  proc sort data=Analysis ; by cID PairID treated gvkey datadate; run;

NOTE: There were 16817 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16817 observations and 305 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.20 seconds
      cpu time            0.20 seconds
      

1170  proc sort data=Analysis nodupkey; by cID treated gvkey datadate; run;

NOTE: There were 16817 observations read from the data set WORK.ANALYSIS.
NOTE: 248 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16569 observations and 305 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.21 seconds
      cpu time            0.20 seconds
      

1171  
1172  * destring SIC;
1173  data Analysis;  set Analysis;   sic_num = input(sic, 8.); label sic_num="Standard Industry
1173! Classification Code"; drop sic; run;

NOTE: There were 16569 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16569 observations and 304 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.14 seconds
      

1174  data Analysis;  set Analysis;   rename sic_num = sic; run;

NOTE: There were 16569 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16569 observations and 304 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.14 seconds
      

1175  proc sort data=Analysis nodupkey; by cid gvkey datadate; run;

NOTE: There were 16569 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16569 observations and 304 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.20 seconds
      cpu time            0.20 seconds
      

1176  
1177  
1178  /* ************************************************************************ */
1179  /* ***********************  PART 3: OTHER DATASET  ************************ */
1180  /* ************************************************************************ */
1181  * Analyst forecast and Analyst following;
1182  data afc; set rawdata.afc_fundq;
1183      keep gvkey fyearq datadate rdq numest lnanalys repdats ryear ;
1184      lnanalys = log(1+numest);
1185      if lnanalys ne . ;
1186      ryear = year(repdats);
1187  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      480890 at 1184:16   480890 at 1184:21   
NOTE: There were 988699 observations read from the data set RAWDATA.AFC_FUNDQ.
NOTE: The data set WORK.AFC has 507809 observations and 8 variables.
NOTE: DATA statement used (Total process time):
      real time           0.13 seconds
      cpu time            0.10 seconds
      

1188  proc sort data=afc nodupkey ; by gvkey repdats; run;

NOTE: There were 507809 observations read from the data set WORK.AFC.
NOTE: 1183 observations with duplicate key values were deleted.
NOTE: The data set WORK.AFC has 506626 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.10 seconds
      

1189  
1190  proc sql;
1191      create table afc as
1192      select  distinct gvkey, ryear, datadate,
1193              max(numest) as numest_max label="Max #Analyst (year)",
1194              max(lnanalys) as lnanalys_max label="Max #LnAnalyst (year)"
1195      from    afc
1196      group by gvkey, ryear
1197      order by gvkey, datadate;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.AFC created, with 506626 rows and 5 columns.

1198  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.18 seconds
      cpu time            0.26 seconds
      

1199  
1200  * Stock illiquidity (AIM);
1201  data aim; set rawdata.aim; run;

NOTE: There were 649518 observations read from the data set RAWDATA.AIM.
NOTE: The data set WORK.AIM has 649518 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds
      

1202  proc sort data=aim nodupkey; by gvkey datadate; run;

NOTE: There were 649518 observations read from the data set WORK.AIM.
NOTE: 374 observations with duplicate key values were deleted.
NOTE: The data set WORK.AIM has 649144 observations and 9 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.14 seconds
      

1203  
1204  * Price synchronicity (Morck et al 2002);
1205  data psynch ; set rawdata.pinfo_qtr_retx6d; run;

NOTE: There were 515792 observations read from the data set RAWDATA.PINFO_QTR_RETX6D.
NOTE: The data set WORK.PSYNCH has 515792 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds
      

1206  proc sort data=psynch; by gvkey fyear fqtr; run;

NOTE: There were 515792 observations read from the data set WORK.PSYNCH.
NOTE: The data set WORK.PSYNCH has 515792 observations and 9 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.11 seconds
      

1207  
1208  data psynch; set psynch;
1209      by gvkey fyear fqtr;
1210      if last.fqtr;
1211  run;

NOTE: There were 515792 observations read from the data set WORK.PSYNCH.
NOTE: The data set WORK.PSYNCH has 515774 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.03 seconds
      

1212  
1213  * Bushee's IICLASS data;
1214  data io_class;
1215      set rawdata.io_class2022qtr;
1216      rqtr = qtr(rdate);
1217      ryear = year(rdate);
1218  run;

NOTE: There were 737259 observations read from the data set RAWDATA.IO_CLASS2022QTR.
NOTE: The data set WORK.IO_CLASS has 737259 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.07 seconds
      

1219  
1220  * Financial constraints;
1221  data constraints; set rawdata.constraints; run;

NOTE: There were 162789 observations read from the data set RAWDATA.CONSTRAINTS.
NOTE: The data set WORK.CONSTRAINTS has 162789 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1222  
1223  * Opacity;
1224  data AFERR;
1225      set rawdata.AFERR;
1226      fpeyear = year(FPEDATS);
1227      drop fyear;
1228  run;

NOTE: There were 124683 observations read from the data set RAWDATA.AFERR.
NOTE: The data set WORK.AFERR has 124683 observations and 14 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

1229  proc sort data=AFERR nodupkey; by gvkey fpeyear; run;

NOTE: There were 124683 observations read from the data set WORK.AFERR.
NOTE: 14 observations with duplicate key values were deleted.
NOTE: The data set WORK.AFERR has 124669 observations and 14 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.02 seconds
      cpu time            0.03 seconds
      

1230  data AFERR; set AFERR; drop fpeyear; run;

NOTE: There were 124669 observations read from the data set WORK.AFERR.
NOTE: The data set WORK.AFERR has 124669 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

1231  
1232  * Ivol quarterly;
1233  data retvol; set rawdata.retvolqtr_112824;  run;

NOTE: There were 519328 observations read from the data set RAWDATA.RETVOLQTR_112824.
NOTE: The data set WORK.RETVOL has 519328 observations and 7 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds
      

1234  proc sort data=retvol nodupkey; by gvkey enddt; run;

NOTE: There were 519328 observations read from the data set WORK.RETVOL.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.RETVOL has 519328 observations and 7 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.11 seconds
      

1235  
1236  * abnormal Volume trading;
1237  data abvolume; set rawdata.abvolume; run;

NOTE: There were 747275 observations read from the data set RAWDATA.ABVOLUME.
NOTE: The data set WORK.ABVOLUME has 747275 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
      

1238  proc sort data=abvolume nodupkey; by gvkey fyearq fqtr; run;

NOTE: There were 747275 observations read from the data set WORK.ABVOLUME.
NOTE: 29080 observations with duplicate key values were deleted.
NOTE: The data set WORK.ABVOLUME has 718195 observations and 6 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.10 seconds
      

1239  
1240  * CAR at meeting dates to activism data;
1241  data car_meetingdt1; set rawdata.car_meetingdt_capm_00;
1242      rename car = car_meeting00;
1243      label car = "AR[0] Meeting dt";
1244  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_00.
NOTE: The data set WORK.CAR_MEETINGDT1 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1245  proc sort data=car_meetingdt1 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT1.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT1 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1246  
1247  data car_meetingdt2; set rawdata.car_meetingdt_capm_01;
1248      rename car = car_meeting01;
1249      label car = "CAR[0+1] Meeting dt";
1250  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_01.
NOTE: The data set WORK.CAR_MEETINGDT2 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1251  proc sort data=car_meetingdt2 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT2 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1252  
1253  data car_meetingdt3; set rawdata.car_meetingdt_capm_11_round2;
1254      rename car = car_meeting11;
1255      label car = "CAR[-1+1] Meeting dt";
1256  run;

NOTE: There were 1846 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_11_ROUND2.
NOTE: The data set WORK.CAR_MEETINGDT3 has 1846 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1257  proc sort data=car_meetingdt3 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1846 observations read from the data set WORK.CAR_MEETINGDT3.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT3 has 1846 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

1258  
1259  data car_meetingdt4; set rawdata.car_meetingdt_capm_17;
1260      rename car = car_meeting17;
1261      label car = "CAR[+1+7] Meeting dt";
1262  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_17.
NOTE: The data set WORK.CAR_MEETINGDT4 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1263  proc sort data=car_meetingdt4 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT4.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT4 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1264  
1265  data car_meetingdt5; set rawdata.car_meetingdt_capm_27_round2;
1266      rename car = car_meeting27;
1267      label car = "CAR[+2+7] Meeting dt";
1268  run;

NOTE: There were 1846 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_27_ROUND2.
NOTE: The data set WORK.CAR_MEETINGDT5 has 1846 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1269  proc sort data=car_meetingdt5 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1846 observations read from the data set WORK.CAR_MEETINGDT5.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT5 has 1846 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

1270  
1271  data car_meetingdt6; set rawdata.car_meetingdt_capm_214;
1272      rename car = car_meeting214;
1273      label car = "CAR[+2+14] Meeting dt";
1274  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_214.
NOTE: The data set WORK.CAR_MEETINGDT6 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1275  proc sort data=car_meetingdt6 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT6.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT6 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1276  
1277  * compute the sum of Large and Small MFOR immediately before 13D;
1278  data mfor_13d; set rawdata.mfor_13d;run;

NOTE: There were 856 observations read from the data set RAWDATA.MFOR_13D.
NOTE: The data set WORK.MFOR_13D has 856 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1279  proc sort data=mfor_13d nodupkey; by gvkey CAMPAIGN_ID; run;

NOTE: There were 856 observations read from the data set WORK.MFOR_13D.
NOTE: 4 observations with duplicate key values were deleted.
NOTE: The data set WORK.MFOR_13D has 852 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1280  
1281  * Investor Relation (IR) data;
1282  data ir; set rawdata.ir2_111624; run;

NOTE: There were 133334 observations read from the data set RAWDATA.IR2_111624.
NOTE: The data set WORK.IR has 133334 observations and 42 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.01 seconds
      

1283  
1284  * experience level of proxy solicitors;
1285  data advisory; set rawdata.advisory; run;

NOTE: There were 9262 observations read from the data set RAWDATA.ADVISORY.
NOTE: The data set WORK.ADVISORY has 9262 observations and 12 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1286  proc sort data=advisory nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 9262 observations read from the data set WORK.ADVISORY.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ADVISORY has 9262 observations and 12 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1287  
1288  * Insider Ownership;
1289  data insider; set rawdata.insider; run;

NOTE: There were 48632 observations read from the data set RAWDATA.INSIDER.
NOTE: The data set WORK.INSIDER has 48632 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1290  
1291  * -------------------------------------------;
1292  * Merge datasets;
1293  * -------------------------------------------;
1294  proc sql;
1295  create table Analysis as
1296  select  a.*, b.*
1297  from    Analysis as a left join afc as b
1298  on      a.gvkey=b.gvkey and a.datadate = b.datadate ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable ryear already exists on file WORK.ANALYSIS.
WARNING: Variable datadate already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 306 columns.

1299  
1300  create table Analysis as
1301  select  a.*, b.insider_own
1302  from    Analysis as a left join insider as b
1303  on      a.gvkey=b.gvkey and a.datadate = b.datadate ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 307 columns.

1304  
1305  create table Analysis as
1306  select  a.*, b.aim, b.ln_oneplusaim, b.ln_aim
1307  from    Analysis as a left join aim as b
1308  on      a.gvkey=b.gvkey and a.datadate = b.datadate;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 310 columns.

1309  
1310  create table Analysis as
1311  select  a.*, b.psynch1,b.psynch2,b.psynch3,b.pinfo1,b.pinfo2,b.pinfo3
1312  from    Analysis as a left join psynch as b
1313  on      a.gvkey=b.gvkey and a.fyearq = b.fyear and a.fqtr=b.fqtr ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 316 columns.

1314  
1315  create table Analysis as
1316  select  a.*, b.*
1317  from    Analysis as a left join io_class as b
1318  on      a.gvkey=b.gvkey and a.fyearq=b.ryear and a.fqtr=b.rqtr ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable permno already exists on file WORK.ANALYSIS.
WARNING: Variable rdate already exists on file WORK.ANALYSIS.
WARNING: Variable ryear already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 325 columns.

1319  
1320  create table Analysis as
1321  select  a.*, b.kzindex,b.saindex,b.wwindex
1322  from    Analysis as a left join constraints as b
1323  on      a.gvkey=b.gvkey and a.fyearq=b.fyear+1 ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 328 columns.

1324  
1325  create table Analysis as
1326  select  a.*, b.abvolume, b.volumeturn
1327  from    Analysis as a left join abvolume as b
1328  on      a.gvkey=b.gvkey and a.fyearq=b.fyearq and a.fqtr=b.fqtr;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 330 columns.

1329  
1330  create table Analysis as
1331  select  a.*, b.*
1332  from    Analysis as a left join retvol as b
1333  on      a.gvkey=b.gvkey and a.rdq=b.enddt;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 336 columns.

1334  
1335  create table Analysis as
1336  select  a.*, b.car_meeting00
1337  from    Analysis as a left join car_meetingdt1 as b
1338  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 337 columns.

1339  
1340  create table Analysis as
1341  select  a.*, b.car_meeting01
1342  from    Analysis as a left join car_meetingdt2 as b
1343  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 338 columns.

1344  
1345  create table Analysis as
1346  select  a.*, b.car_meeting11
1347  from    Analysis as a left join car_meetingdt3 as b
1348  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 339 columns.

1349  
1350  create table Analysis as
1351  select  a.*, b.car_meeting17
1352  from    Analysis as a left join car_meetingdt4 as b
1353  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 340 columns.

1354  
1355  create table Analysis as
1356  select  a.*, b.car_meeting27
1357  from    Analysis as a left join car_meetingdt5 as b
1358  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 341 columns.

1359  
1360  create table Analysis as
1361  select  a.*, b.car_meeting214
1362  from    Analysis as a left join car_meetingdt6 as b
1363  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 342 columns.

1364  
1365  create table Analysis as
1366  select  a.*, b.*
1367  from    Analysis as a left join AFERR as b
1368  on      a.gvkey=b.gvkey and
1369          year(a.datadate)=year(b.FPEDATS);
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16569 rows and 354 columns.

1370  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           4.09 seconds
      cpu time            4.59 seconds
      

1371  proc sort data=Analysis nodupkey; by cid gvkey rdq; run;

NOTE: There were 16569 observations read from the data set WORK.ANALYSIS.
NOTE: 32 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16537 observations and 354 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.17 seconds
      cpu time            0.15 seconds
      

1372  
1373  *other datasets;
1374  proc sql;
1375  create table Analysis as
1376  select  a.*, b.*
1377  from    Analysis as a left join mfor_13d as b
1378  on      a.gvkey=b.gvkey and a.CAMPAIGN_ID=b.CAMPAIGN_ID ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable campaign_id already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16537 rows and 362 columns.

1379  
1380  create table Analysis as
1381  select  a.*, b.*
1382  from    Analysis as a left join advisory as b
1383  on      a.CAMPAIGN_ID=b.CAMPAIGN_ID ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable CAMPAIGN_ID already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16537 rows and 373 columns.

1384  
1385  create table Analysis as
1386  select  a.*,
1387          b.ir_freq, b.ir_dum, b.ir_freq_ann, b.ir_max,
1388          b.ir_sic2, b.ir_std_sic2, b.ir_sic2_ann,
1389          b.ir_avg, b.ir_std, b.ir_min, b.ir_max,
1390          b.ir_avg_last4, b.ir_std_last4,
1391          b.ir_avg_last8, b.ir_std_last8,
1392          b.ir_avg_last12, b.ir_std_last12,
1393          b.ir_avg_last16, b.ir_std_last16,
1394          b.ir_freq_movave4, b.ir_freq_movave8, b.ir_freq_movave12, b.ir_freq_movave16,
1395          b.ir_freq_movstd4, b.ir_freq_movstd8, b.ir_freq_movstd12, b.ir_freq_movstd16
1396  from    Analysis as a left join ir as b
1397  on      a.gvkey=b.gvkey and
1398          year(a.rdq)=b.year and qtr(a.rdq)=b.quarter;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable ir_max already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 16537 rows and 399 columns.

1399  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.08 seconds
      cpu time            1.29 seconds
      

1400  proc sort data=Analysis nodupkey; by cid gvkey rdq; run;

NOTE: There were 16537 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 16537 observations and 399 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.22 seconds
      cpu time            0.21 seconds
      

1401  
1402  * drop unwanted vars;
1403  data Analysis ;
1404      set Analysis;
1405      drop outcome_desc company_fee_desc dissident_fee_desc dir_off_own_desc
1405! campaign_synopsis campaign_title iso_country
1406      target: actfinanc: actlegal: actpr: ;
1407  run;

NOTE: There were 16537 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 16537 observations and 355 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.10 seconds
      

1408  
1409  * Export data to Stata file;
1410  %let FFP =
1410! "C:\Users\hpham13\Projects\mf_activism\empirical\1_code\final_package_acceptance\assembledd
1410! ata_poscar.dta";
1411  proc export data = Analysis outfile = &FFP. replace;
1411!                                                      run;

NOTE: The export data set has 16537 observations and 355 variables.
NOTE: "C:\Users\hpham13\Projects\mf_activism\empirical\1_code\final_package_acceptance\assembledd
      ata_poscar.dta" file was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
      

1412  
1413  
1414  proc printto;
1415  run;

